package cn.wgx.modules.sys.entity;

import cn.wgx.modules.base.entity.BaseEntity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;

/**
 * Created By MBG-GUI-EXTENSION https://github.com/spawpaw/mybatis-generator-gui-extension
 * Description:
 * 用户历程
 *
 * @author 
 */
public class SysUserJourney extends BaseEntity implements Serializable {
    /**
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Integer journey_id;

    /**
     * 标题
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private String title;

    /**
     * 颜色
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private String color;

    /**
     * 内容
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private String content;

    /**
     * 日期
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Date theDate;

    /**
     * 类型
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Integer type;

    /**
     * 级别
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Integer level;

    /**
     * 创建人
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Integer createUserId;

    /**
     * 创建时间
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Date createDate;

    /**
     * 修改人
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Integer updateUserId;

    /**
     * 修改时间
     *
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private Date updateDate;

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    private static final long serialVersionUID = 1L;

    /**
     * This method returns the value of the database column education..sys_user_journey.journey_id
     *
     * @return the value of education..sys_user_journey.journey_id
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Integer getJourney_id() {
        return journey_id;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withJourney_id(Integer journey_id) {
        this.setJourney_id(journey_id);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.journey_id
     *
     * @param journey_id the value for education..sys_user_journey.journey_id
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setJourney_id(Integer journey_id) {
        this.journey_id = journey_id;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.title
     *
     * @return the value of education..sys_user_journey.title
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public String getTitle() {
        return title;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withTitle(String title) {
        this.setTitle(title);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.title
     *
     * @param title the value for education..sys_user_journey.title
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.color
     *
     * @return the value of education..sys_user_journey.color
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public String getColor() {
        return color;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withColor(String color) {
        this.setColor(color);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.color
     *
     * @param color the value for education..sys_user_journey.color
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setColor(String color) {
        this.color = color;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.content
     *
     * @return the value of education..sys_user_journey.content
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public String getContent() {
        return content;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withContent(String content) {
        this.setContent(content);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.content
     *
     * @param content the value for education..sys_user_journey.content
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.theDate
     *
     * @return the value of education..sys_user_journey.theDate
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Date getTheDate() {
        return theDate;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withTheDate(Date theDate) {
        this.setTheDate(theDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.theDate
     *
     * @param theDate the value for education..sys_user_journey.theDate
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setTheDate(Date theDate) {
        this.theDate = theDate;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.type
     *
     * @return the value of education..sys_user_journey.type
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Integer getType() {
        return type;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withType(Integer type) {
        this.setType(type);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.type
     *
     * @param type the value for education..sys_user_journey.type
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.level
     *
     * @return the value of education..sys_user_journey.level
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Integer getLevel() {
        return level;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withLevel(Integer level) {
        this.setLevel(level);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.level
     *
     * @param level the value for education..sys_user_journey.level
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setLevel(Integer level) {
        this.level = level;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.createUserId
     *
     * @return the value of education..sys_user_journey.createUserId
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Integer getCreateUserId() {
        return createUserId;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withCreateUserId(Integer createUserId) {
        this.setCreateUserId(createUserId);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.createUserId
     *
     * @param createUserId the value for education..sys_user_journey.createUserId
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setCreateUserId(Integer createUserId) {
        this.createUserId = createUserId;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.createDate
     *
     * @return the value of education..sys_user_journey.createDate
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Date getCreateDate() {
        return createDate;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withCreateDate(Date createDate) {
        this.setCreateDate(createDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.createDate
     *
     * @param createDate the value for education..sys_user_journey.createDate
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.updateUserId
     *
     * @return the value of education..sys_user_journey.updateUserId
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Integer getUpdateUserId() {
        return updateUserId;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withUpdateUserId(Integer updateUserId) {
        this.setUpdateUserId(updateUserId);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.updateUserId
     *
     * @param updateUserId the value for education..sys_user_journey.updateUserId
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setUpdateUserId(Integer updateUserId) {
        this.updateUserId = updateUserId;
    }

    /**
     * This method returns the value of the database column education..sys_user_journey.updateDate
     *
     * @return the value of education..sys_user_journey.updateDate
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public Date getUpdateDate() {
        return updateDate;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public SysUserJourney withUpdateDate(Date updateDate) {
        this.setUpdateDate(updateDate);
        return this;
    }

    /**
     * This method sets the value of the database column education..sys_user_journey.updateDate
     *
     * @param updateDate the value for education..sys_user_journey.updateDate
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", journey_id=").append(journey_id);
        sb.append(", title=").append(title);
        sb.append(", color=").append(color);
        sb.append(", content=").append(content);
        sb.append(", theDate=").append(theDate);
        sb.append(", type=").append(type);
        sb.append(", level=").append(level);
        sb.append(", createUserId=").append(createUserId);
        sb.append(", createDate=").append(createDate);
        sb.append(", updateUserId=").append(updateUserId);
        sb.append(", updateDate=").append(updateDate);
        sb.append("]");
        return sb.toString();
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SysUserJourney other = (SysUserJourney) that;
        return (this.getJourney_id() == null ? other.getJourney_id() == null : this.getJourney_id().equals(other.getJourney_id()))
            && (this.getTitle() == null ? other.getTitle() == null : this.getTitle().equals(other.getTitle()))
            && (this.getColor() == null ? other.getColor() == null : this.getColor().equals(other.getColor()))
            && (this.getContent() == null ? other.getContent() == null : this.getContent().equals(other.getContent()))
            && (this.getTheDate() == null ? other.getTheDate() == null : this.getTheDate().equals(other.getTheDate()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
            && (this.getLevel() == null ? other.getLevel() == null : this.getLevel().equals(other.getLevel()))
            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()))
            && (this.getCreateDate() == null ? other.getCreateDate() == null : this.getCreateDate().equals(other.getCreateDate()))
            && (this.getUpdateUserId() == null ? other.getUpdateUserId() == null : this.getUpdateUserId().equals(other.getUpdateUserId()))
            && (this.getUpdateDate() == null ? other.getUpdateDate() == null : this.getUpdateDate().equals(other.getUpdateDate()));
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getJourney_id() == null) ? 0 : getJourney_id().hashCode());
        result = prime * result + ((getTitle() == null) ? 0 : getTitle().hashCode());
        result = prime * result + ((getColor() == null) ? 0 : getColor().hashCode());
        result = prime * result + ((getContent() == null) ? 0 : getContent().hashCode());
        result = prime * result + ((getTheDate() == null) ? 0 : getTheDate().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getLevel() == null) ? 0 : getLevel().hashCode());
        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
        result = prime * result + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode());
        result = prime * result + ((getUpdateUserId() == null) ? 0 : getUpdateUserId().hashCode());
        result = prime * result + ((getUpdateDate() == null) ? 0 : getUpdateDate().hashCode());
        return result;
    }

    /**
     *
     * @mbg.generated Tue Jul 21 17:32:09 CST 2020
     */
    public enum Column {
        journey_id("journey_id", "journey_id", "INTEGER", false),
        title("title", "title", "VARCHAR", false),
        color("color", "color", "VARCHAR", false),
        content("content", "content", "VARCHAR", false),
        theDate("theDate", "theDate", "TIMESTAMP", false),
        type("type", "type", "INTEGER", false),
        level("level", "level", "INTEGER", false),
        createUserId("createUserId", "createUserId", "INTEGER", false),
        createDate("createDate", "createDate", "TIMESTAMP", false),
        updateUserId("updateUserId", "updateUserId", "INTEGER", false),
        updateDate("updateDate", "updateDate", "TIMESTAMP", false);

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        private static final String BEGINNING_DELIMITER = "\"";

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        private static final String ENDING_DELIMITER = "\"";

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        private final String column;

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        private final boolean isColumnNameDelimited;

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        private final String javaProperty;

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        private final String jdbcType;

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String value() {
            return this.column;
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String getValue() {
            return this.column;
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String getJavaProperty() {
            return this.javaProperty;
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String getJdbcType() {
            return this.jdbcType;
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        Column(String column, String javaProperty, String jdbcType, boolean isColumnNameDelimited) {
            this.column = column;
            this.javaProperty = javaProperty;
            this.jdbcType = jdbcType;
            this.isColumnNameDelimited = isColumnNameDelimited;
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String desc() {
            return this.getEscapedColumnName() + " DESC";
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String asc() {
            return this.getEscapedColumnName() + " ASC";
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public static Column[] excludes(Column ... excludes) {
            ArrayList<Column> columns = new ArrayList<>(Arrays.asList(Column.values()));
            if (excludes != null && excludes.length > 0) {
                columns.removeAll(new ArrayList<>(Arrays.asList(excludes)));
            }
            return columns.toArray(new Column[]{});
        }

        /**
         *
         * @mbg.generated Tue Jul 21 17:32:09 CST 2020
         */
        public String getEscapedColumnName() {
            if (this.isColumnNameDelimited) {
                return new StringBuilder().append(BEGINNING_DELIMITER).append(this.column).append(ENDING_DELIMITER).toString();
            } else {
                return this.column;
            }
        }
    }
}